<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
<div id="app">
  <input type="text" v-model="info.username">
  <input type="text" v-model="info.address.city">
</div>

<script src="./lib/vue-2.6.12.js"></script>
<script src="./lib/jquery-v3.6.0.js"></script>

<script>
    const vm = new Vue({
        el: '#app',
        data: {
            // 用户的信息对象
            info: {
                username: 'admin',
                address: {
                    city: '北京',
                },
            },
        },
        // 所有的侦听器，都应该被定义到 watch 节点下
        watch: {
            /* info: {
              handler(newVal) {
                console.log(newVal)
              },
              // 开启深度监听，只要对象中任何一个属性变化了，都会触发“对象的侦听器”
              deep: true
            } */
            // 如果要侦听的是对象的子属性的变化，则必须包裹一层单引号
            'info.username' (newVal) {
                console.log(newVal)
            },
        },
    })
</script>
</body>

</html>
